|
| 1 | +# Redmine Wiki Extensions Plugin |
| 2 | + |
1 | 3 | [](https://github.com/haru/redmine_wiki_extensions/actions/workflows/build.yml) |
2 | 4 | [](https://codeclimate.com/github/haru/redmine_wiki_extensions/maintainability) |
| 5 | +[](https://deepwiki.com/haru/redmine_wiki_extensions) |
3 | 6 | [](https://codecov.io/gh/haru/redmine_wiki_extensions) |
4 | 7 |
|
5 | | -# Redmine Wiki Extensions Plugin |
| 8 | +A comprehensive Redmine plugin that extends wiki functionality with powerful macros, comments, tagging, voting, and enhanced formatting capabilities. |
| 9 | + |
| 10 | +## 🌟 Features |
| 11 | + |
| 12 | +### Wiki Macros |
| 13 | +- **Count Macro** - Display and track page access counts |
| 14 | +- **Recent Macro** - Show recently updated wiki pages |
| 15 | +- **New Macro** - Highlight newly created content |
| 16 | +- **Tags Macro** - Display and manage page tags |
| 17 | +- **Vote Macro** - Enable voting/rating on wiki pages |
| 18 | +- **Project Macro** - Display project information and links |
| 19 | +- **Twitter Macro** - Embed Twitter content |
| 20 | +- **Wiki Macro** - Enhanced wiki page linking |
| 21 | +- **Iframe Macro** - Embed external content |
| 22 | +- **Page Break Macro** - Add print-friendly page breaks |
| 23 | +- **Div Macros** - Add custom HTML div containers |
| 24 | +- **Last Updated Macros** - Show when/who last updated pages |
| 25 | + |
| 26 | +### Additional Features |
| 27 | +- **Hierarchical Comments** - Add threaded comments to wiki pages |
| 28 | +- **Tagging System** - Organize pages with tags and tag-based navigation |
| 29 | +- **Voting/Rating** - Allow users to rate wiki pages |
| 30 | +- **Email Notifications** - Get notified about comment activity |
| 31 | +- **Enhanced Formatting** - Extended wiki formatting capabilities |
| 32 | +- **Emoticons Support** - Add emotional expressions to content |
| 33 | +- **Footnotes** - Create academic-style footnotes |
| 34 | +- **Responsive Design** - Mobile-friendly interface |
| 35 | + |
| 36 | +### Internationalization |
| 37 | +Supports 14+ languages including: |
| 38 | +- English, Japanese, German, French, Spanish, Italian |
| 39 | +- Portuguese, Russian, Korean, Chinese, and more |
| 40 | + |
| 41 | +## 📋 Requirements |
| 42 | + |
| 43 | +- **Redmine**: 6.0.0 or higher |
| 44 | +- **Ruby**: 3.1 or higher |
| 45 | +- **Rails**: Compatible with Redmine's Rails version |
| 46 | + |
| 47 | +## 🚀 Installation |
| 48 | + |
| 49 | +### 1. Download the Plugin |
| 50 | + |
| 51 | +```bash |
| 52 | +cd /path/to/redmine/plugins |
| 53 | +git clone https://github.com/haru/redmine_wiki_extensions.git |
| 54 | +``` |
| 55 | + |
| 56 | +### 2. Install Dependencies |
| 57 | + |
| 58 | +```bash |
| 59 | +cd /path/to/redmine |
| 60 | +bundle install |
| 61 | +``` |
| 62 | + |
| 63 | +### 3. Run Migration |
| 64 | + |
| 65 | +```bash |
| 66 | +rake redmine:plugins:migrate RAILS_ENV=production |
| 67 | +``` |
| 68 | + |
| 69 | +### 4. Restart Redmine |
| 70 | + |
| 71 | +Restart your Redmine server to load the plugin. |
| 72 | + |
| 73 | +### 5. Enable the Module |
| 74 | + |
| 75 | +1. Go to your project settings |
| 76 | +2. Select the "Modules" tab |
| 77 | +3. Enable "Wiki Extensions" module |
| 78 | +4. Configure permissions under "Roles and permissions" |
| 79 | + |
| 80 | +## ⚙️ Configuration |
| 81 | + |
| 82 | +### Project Settings |
| 83 | + |
| 84 | +After enabling the module, configure plugin settings: |
| 85 | + |
| 86 | +1. Navigate to **Project Settings → Wiki Extensions** |
| 87 | +2. Available options: |
| 88 | + - Enable/disable auto preview |
| 89 | + - Configure sidebar display |
| 90 | + - Enable/disable tagging functionality |
| 91 | + - Set up voting permissions |
| 92 | + - Configure comment notifications |
| 93 | + |
| 94 | +### Permissions |
| 95 | + |
| 96 | +Configure user permissions for: |
| 97 | +- **Wiki Extensions Vote** - Allow voting on wiki pages |
| 98 | +- **Add Wiki Comments** - Add comments to wiki pages |
| 99 | +- **Delete Wiki Comments** - Remove comments |
| 100 | +- **Edit Wiki Comments** - Modify existing comments |
| 101 | +- **Manage Wiki Extensions** - Configure plugin settings |
| 102 | + |
| 103 | +## 📖 Usage Examples |
| 104 | + |
| 105 | +### Basic Macros |
| 106 | + |
| 107 | +```textile |
| 108 | +{{count}} # Display page access count |
| 109 | +{{recent}} # Show recent wiki pages |
| 110 | +{{recent(10)}} # Show 10 most recent pages |
| 111 | +{{new}} # Highlight new pages |
| 112 | +{{tags}} # Display page tags |
| 113 | +{{vote}} # Add voting interface |
| 114 | +``` |
| 115 | + |
| 116 | +### Advanced Macros |
| 117 | + |
| 118 | +```textile |
| 119 | +{{project}} # Display current project info |
| 120 | +{{project(ProjectName)}} # Display specific project info |
| 121 | +{{wiki(PageName)}} # Enhanced wiki page link |
| 122 | +{{twitter(username)}} # Embed Twitter feed |
| 123 | +{{iframe(http://example.com)}} # Embed external content |
| 124 | +``` |
| 125 | + |
| 126 | +### Formatting Enhancements |
| 127 | + |
| 128 | +```textile |
| 129 | +{{div_start_tag(class=highlight)}} |
| 130 | +Special content in a highlighted div |
| 131 | +{{div_end_tag}} |
| 132 | +
|
| 133 | +{{page_break}} # Add page break for printing |
| 134 | +
|
| 135 | +{{lastupdated_at}} # Show last update time |
| 136 | +{{lastupdated_by}} # Show last editor |
| 137 | +``` |
| 138 | + |
| 139 | +### Comments and Tagging |
| 140 | + |
| 141 | +- **Add Comments**: Users can add hierarchical comments to any wiki page |
| 142 | +- **Tag Pages**: Use the tagging interface to organize content |
| 143 | +- **Vote on Content**: Rate pages using the voting system |
| 144 | + |
| 145 | +## 🏗️ Development |
| 146 | + |
| 147 | +### Running Tests |
| 148 | + |
| 149 | +```bash |
| 150 | +# Run all tests |
| 151 | +bundle exec rake redmine:plugins:test NAME=redmine_wiki_extensions |
| 152 | + |
| 153 | +# Run with coverage |
| 154 | +bundle exec rake redmine:plugins:test NAME=redmine_wiki_extensions COVERAGE=true |
| 155 | +``` |
| 156 | + |
| 157 | +### Build Scripts |
| 158 | + |
| 159 | +The plugin includes comprehensive build scripts for CI/CD: |
| 160 | + |
| 161 | +```bash |
| 162 | +cd build-scripts |
| 163 | +./install.sh # Set up test environment |
| 164 | +./build.sh # Run full build process |
| 165 | +./cleanup.sh # Clean up after tests |
| 166 | +``` |
| 167 | + |
| 168 | +### Database Support |
| 169 | + |
| 170 | +Tested with: |
| 171 | +- SQLite (development/testing) |
| 172 | +- MySQL/MariaDB (production) |
| 173 | +- PostgreSQL (production) |
| 174 | + |
| 175 | +## 📁 Plugin Structure |
| 176 | + |
| 177 | +``` |
| 178 | +redmine_wiki_extensions/ |
| 179 | +├── init.rb # Plugin registration and configuration |
| 180 | +├── app/ # Rails MVC structure |
| 181 | +│ ├── controllers/ # Plugin controllers |
| 182 | +│ ├── models/ # Data models (comments, tags, votes) |
| 183 | +│ └── views/ # UI templates |
| 184 | +├── lib/ # Core functionality |
| 185 | +│ ├── *_macro.rb # Wiki macro implementations |
| 186 | +│ ├── *_patch.rb # Redmine core extensions |
| 187 | +│ └── wiki_extensions_*.rb # Helper classes |
| 188 | +├── config/ |
| 189 | +│ ├── routes.rb # Plugin routes |
| 190 | +│ └── locales/ # Internationalization files |
| 191 | +├── db/migrate/ # Database migrations |
| 192 | +├── assets/ # Static assets (CSS, JS, images) |
| 193 | +└── test/ # Test suite |
| 194 | +``` |
| 195 | + |
| 196 | +## 🤝 Contributing |
| 197 | + |
| 198 | +1. Fork the repository |
| 199 | +2. Create your feature branch from `develop` (`git checkout -b feature/amazing-feature develop`) |
| 200 | +3. Write tests for your changes |
| 201 | +4. Ensure all tests pass |
| 202 | +5. Commit your changes (`git commit -m 'Add amazing feature'`) |
| 203 | +6. Push to the branch (`git push origin feature/amazing-feature`) |
| 204 | +7. **Open a Pull Request against the `develop` branch** (not `main`/`master`) |
| 205 | + |
| 206 | +**Important**: All pull requests must target the `develop` branch. PRs against other branches will be redirected. |
| 207 | + |
| 208 | +### Development Guidelines |
| 209 | + |
| 210 | +- Follow Redmine plugin development patterns |
| 211 | +- Always include module enablement checks: `WikiExtensionsUtil.is_enabled?(@project)` |
| 212 | +- Add appropriate permission checks |
| 213 | +- Include tests for new functionality |
| 214 | +- Update localization files for new features |
6 | 215 |
|
7 | | -Wiki Extensions is a plugin which adds several useful wiki macros to Redmine. |
| 216 | +## 📄 License |
8 | 217 |
|
9 | | -https://www.r-labs.org/projects/r-labs/wiki/Wiki_Extensions_en |
| 218 | +This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. |
10 | 219 |
|
11 | | -## Plugin installation |
| 220 | +See [GPL.txt](GPL.txt) for full license details. |
12 | 221 |
|
13 | | -1. Copy the plugin directory into the plugins directory |
| 222 | +## 🙋♂️ Support |
14 | 223 |
|
15 | | -2. Migrate plugin: |
16 | | - rake redmine:plugins:migrate RAILS_ENV=production |
| 224 | +- **Issues**: [GitHub Issues](https://github.com/haru/redmine_wiki_extensions/issues) |
| 225 | +- **Documentation**: [Project Wiki](https://www.r-labs.org/projects/r-labs/wiki/Wiki_Extensions_en) |
| 226 | +- **Author**: [Haruyuki Iida](http://twitter.com/haru_iida) |
17 | 227 |
|
18 | | -3. Start Redmine |
| 228 | +## 📈 Changelog |
19 | 229 |
|
20 | | -4. Add wiki extensions module into your project. |
| 230 | +### Version 1.0.2 |
| 231 | +- Compatible with Redmine 6.0+ |
| 232 | +- Improved test coverage |
| 233 | +- Enhanced CI/CD pipeline |
| 234 | +- Bug fixes and performance improvements |
21 | 235 |
|
22 | | -## Note |
| 236 | +--- |
23 | 237 |
|
24 | | -This plugin works only on production mode. |
| 238 | +**Note**: This plugin is designed to work in production mode. For development and testing, please refer to the build scripts and testing documentation. |
25 | 239 |
|
26 | | -## Language contributors |
27 | 240 |
|
28 | | -* ru.yml - Dim A |
29 | | -* fr.yml - Pascal Menut |
30 | | -* de.yml - Albrecht Backhaus |
31 | | -* it.yml - earcar |
32 | | -* sv.yml - Henrik Jönsson |
33 | | -* es.yml - Francisco Benítez León |
34 | | -* no.yml - Thomas Nygreen |
35 | | -* pt.yml - Marcelo Fernandes |
36 | | -* pt-BR.yml - Marcelo Fernandes |
37 | | -* pl.yml - Łukasz Rymarczyk |
38 | | -* zh.yml - Tim lin, Steven Wong |
|
0 commit comments