@icij/murmur-next 4.0.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -19
- package/dist/lib/components/AccordionStep.vue.d.ts +79 -0
- package/dist/lib/components/AccordionWrapper.vue.d.ts +33 -0
- package/dist/lib/components/ActiveTextTruncate.vue.d.ts +101 -0
- package/dist/lib/components/AdvancedLinkForm.vue.d.ts +168 -0
- package/dist/lib/components/Brand.vue.d.ts +55 -0
- package/dist/lib/components/BrandExpansion.vue.d.ts +105 -0
- package/dist/lib/components/ConfirmButton.vue.d.ts +158 -0
- package/dist/lib/components/ContentPlaceholder.vue.d.ts +44 -0
- package/dist/lib/components/CustomPagination.vue.d.ts +130 -0
- package/dist/lib/components/DigitsInput.vue.d.ts +66 -0
- package/dist/lib/components/DonateForm.vue.d.ts +46 -0
- package/dist/lib/components/EmbedForm.vue.d.ts +121 -0
- package/dist/lib/components/EmbeddableFooter.vue.d.ts +103 -0
- package/dist/lib/components/FollowUsPopover.vue.d.ts +16 -0
- package/dist/lib/components/GenericFooter.vue.d.ts +47 -0
- package/dist/lib/components/GenericHeader.vue.d.ts +928 -0
- package/dist/lib/components/HapticCopy.vue.d.ts +156 -0
- package/dist/lib/components/ImddbHeader.vue.d.ts +960 -0
- package/dist/lib/components/OrdinalLegend.vue.d.ts +87 -0
- package/dist/lib/components/RangePicker.vue.d.ts +196 -0
- package/dist/lib/components/ResponsiveIframe.vue.d.ts +45 -0
- package/dist/lib/components/ScaleLegend.vue.d.ts +101 -0
- package/dist/lib/components/SecretInput.vue.d.ts +99 -0
- package/dist/lib/components/SelectableDropdown.vue.d.ts +210 -0
- package/dist/lib/components/SharingOptions.vue.d.ts +153 -0
- package/dist/lib/components/SharingOptionsLink.vue.d.ts +200 -0
- package/dist/lib/components/SignUpForm.vue.d.ts +141 -0
- package/dist/lib/components/SlideUpDown.vue.d.ts +74 -0
- package/dist/lib/components/TexturedDeck.vue.d.ts +89 -0
- package/dist/lib/components/TinyPagination.vue.d.ts +188 -0
- package/dist/lib/composables/chart.d.ts +48 -0
- package/dist/lib/composables/resizeObserver.d.ts +22 -0
- package/dist/lib/composables/sendEmail.d.ts +6 -0
- package/dist/lib/config.d.ts +19 -0
- package/dist/lib/config.default.d.ts +34 -0
- package/dist/lib/datavisualisations/BarChart.vue.d.ts +234 -0
- package/dist/lib/datavisualisations/ColumnChart.vue.d.ts +404 -0
- package/dist/lib/datavisualisations/LineChart.vue.d.ts +200 -0
- package/dist/lib/datavisualisations/StackedBarChart.vue.d.ts +342 -0
- package/dist/lib/datavisualisations/StackedColumnChart.vue.d.ts +412 -0
- package/dist/lib/enums.d.ts +32 -0
- package/dist/lib/i18n.d.ts +4 -0
- package/dist/lib/keys.d.ts +2 -0
- package/dist/lib/main.d.ts +52 -0
- package/dist/lib/maps/ChoroplethMap.vue.d.ts +460 -0
- package/dist/lib/maps/ChoroplethMapAnnotation.vue.d.ts +188 -0
- package/dist/lib/maps/SymbolMap.vue.d.ts +276 -0
- package/dist/lib/murmur.css +1 -0
- package/dist/lib/murmur.js +44661 -0
- package/dist/lib/murmur.js.map +1 -0
- package/dist/lib/murmur.umd.cjs +837 -0
- package/dist/lib/murmur.umd.cjs.map +1 -0
- package/dist/lib/types.d.ts +44 -0
- package/dist/lib/utils/animation.d.ts +8 -0
- package/dist/lib/utils/assets.d.ts +2 -0
- package/dist/lib/utils/clipboard.d.ts +2 -0
- package/dist/lib/utils/iframe-resizer.d.ts +10 -0
- package/dist/lib/utils/placeholder.d.ts +12 -0
- package/dist/lib/utils/placeholderTypes.d.ts +18 -0
- package/dist/lib/utils/strings.d.ts +1 -0
- package/package.json +15 -1
- package/.github/workflows/deploy-github-pages.yaml +0 -50
- package/.storybook/app.scss +0 -14
- package/.storybook/doc_variables.scss +0 -20
- package/.storybook/main.ts +0 -35
- package/.storybook/preview-head.html +0 -2
- package/.storybook/preview.ts +0 -32
- package/deploy.js +0 -15
- package/docs/components/ApiTable.vue +0 -171
- package/docs/components/App.vue +0 -146
- package/docs/components/CollapsibleBlock.vue +0 -122
- package/docs/components/DocsHeader.vue +0 -68
- package/docs/components/DocsMenu.vue +0 -201
- package/docs/components/DocsMenuSection.vue +0 -109
- package/docs/components/EditLink.vue +0 -49
- package/docs/components/OutboundLink.vue +0 -13
- package/docs/components/PalettePresenter.vue +0 -96
- package/docs/components/RepositoryLink.vue +0 -28
- package/docs/components/SampleCard.vue +0 -119
- package/docs/main.js +0 -42
- package/docs/pages/components/accordion/doc.md +0 -96
- package/docs/pages/components/active-text-truncate/doc.md +0 -44
- package/docs/pages/components/advanced-link-form/doc.md +0 -105
- package/docs/pages/components/brand/doc.md +0 -30
- package/docs/pages/components/brand-expansion/doc.md +0 -70
- package/docs/pages/components/confirm-button/doc.md +0 -91
- package/docs/pages/components/content-placeholder/doc.md +0 -16
- package/docs/pages/components/custom-pagination/doc.md +0 -61
- package/docs/pages/components/digits-input/doc.md +0 -28
- package/docs/pages/components/donate-form/doc.md +0 -20
- package/docs/pages/components/embed-form/doc.md +0 -22
- package/docs/pages/components/embeddable-footer/doc.md +0 -60
- package/docs/pages/components/follow-us-popover/doc.md +0 -5
- package/docs/pages/components/generic-footer/doc.md +0 -21
- package/docs/pages/components/generic-header/doc.md +0 -24
- package/docs/pages/components/haptic-copy/doc.md +0 -27
- package/docs/pages/components/imddb-header/doc.md +0 -23
- package/docs/pages/components/ordinal-legend/doc.md +0 -44
- package/docs/pages/components/range-picker/doc.md +0 -86
- package/docs/pages/components/responsive-iframe/doc.md +0 -13
- package/docs/pages/components/scale-legend/doc.md +0 -65
- package/docs/pages/components/secret-input/doc.md +0 -12
- package/docs/pages/components/selectable-dropdown/doc.md +0 -156
- package/docs/pages/components/sharing-options/doc.md +0 -13
- package/docs/pages/components/sharing-options-link/doc.md +0 -36
- package/docs/pages/components/sign-up-form/doc.md +0 -13
- package/docs/pages/components/slide-up-down/doc.md +0 -28
- package/docs/pages/components/textured-deck/doc.md +0 -78
- package/docs/pages/components/tiny-pagination/doc.md +0 -92
- package/docs/pages/datavisualisation/bars/doc.md +0 -110
- package/docs/pages/datavisualisation/columns/doc.md +0 -165
- package/docs/pages/datavisualisation/lines/doc.md +0 -139
- package/docs/pages/datavisualisation/stacked-bar/doc.md +0 -160
- package/docs/pages/datavisualisation/stacked-column/doc.md +0 -191
- package/docs/pages/getting-started/about-icij/doc.md +0 -13
- package/docs/pages/getting-started/custom-bootstrap/doc.md +0 -36
- package/docs/pages/getting-started/installation-guide/doc.md +0 -59
- package/docs/pages/getting-started/internationalization/doc.md +0 -74
- package/docs/pages/maps/choropleth-map/doc.md +0 -420
- package/docs/pages/maps/choropleth-map-annotation/doc.md +0 -373
- package/docs/pages/maps/symbol-map/doc.md +0 -203
- package/docs/pages/structure/breakpoints/doc.md +0 -3
- package/docs/pages/structure/grid/doc.md +0 -3
- package/docs/pages/utilities/assets/doc.md +0 -138
- package/docs/pages/utilities/config/doc.md +0 -52
- package/docs/pages/utilities/iframes/doc.md +0 -3
- package/docs/pages/visual/colors/doc.md +0 -31
- package/docs/pages/visual/iconography/doc.md +0 -56
- package/docs/pages/visual/states/doc.md +0 -77
- package/docs/pages/visual/themes/doc.md +0 -3
- package/docs/pages/visual/typography/doc.md +0 -71
- package/docs/routes.js +0 -25
- package/docs/store/index.js +0 -21
- package/docs/styles/app.scss +0 -36
- package/docs/styles/variables.scss +0 -20
- package/loaders/highlight-loader.js +0 -13
- package/loaders/markdown-loader.js +0 -91
- package/loaders/metadata-loader.js +0 -18
- package/loaders/sass-extract-loader.js +0 -14
- package/loaders/vue-docgen-loader.js +0 -14
- package/plugins/MdPluginTypes.ts +0 -10
- package/plugins/docs.ts +0 -50
- package/plugins/front-matter.ts +0 -36
- package/plugins/highlight.ts +0 -27
- package/plugins/markdown-it/api-table.ts +0 -25
- package/plugins/markdown-it/sample-card.ts +0 -31
- package/plugins/plugin-delete.ts +0 -47
- package/plugins/plugin-docgen.ts +0 -23
- package/plugins/sass-vars.ts +0 -25
- package/plugins/vue-docgen.ts +0 -29
- package/public/android-chrome-192x192.png +0 -0
- package/public/android-chrome-512x512.png +0 -0
- package/public/apple-touch-icon.png +0 -0
- package/public/assets/img/arrow-bottom.svg +0 -3
- package/public/assets/img/texture-brick-black.jpg +0 -0
- package/public/assets/img/texture-brick.jpg +0 -0
- package/public/assets/img/texture-carbon-black.jpg +0 -0
- package/public/assets/img/texture-carbon.jpg +0 -0
- package/public/assets/img/texture-crack-black.jpg +0 -0
- package/public/assets/img/texture-crack.jpg +0 -0
- package/public/assets/img/texture-rock-black.jpg +0 -0
- package/public/assets/img/texture-rock.jpg +0 -0
- package/public/assets/img/texture-sand-black.jpg +0 -0
- package/public/assets/img/texture-sand.jpg +0 -0
- package/public/assets/img/texture-silk-black.jpg +0 -0
- package/public/assets/img/texture-silk.jpg +0 -0
- package/public/assets/topojson/france-departments.json +0 -1
- package/public/assets/topojson/paris-arrondissements.json +0 -1
- package/public/assets/topojson/world-countries-sans-antarctica.json +0 -1
- package/public/favicon-16x16.png +0 -0
- package/public/favicon-32x32.png +0 -0
- package/public/favicon.ico +0 -0
- package/public/site.webmanifest +0 -1
- package/stories/assets/code-brackets.svg +0 -1
- package/stories/assets/colors.svg +0 -1
- package/stories/assets/comments.svg +0 -1
- package/stories/assets/direction.svg +0 -1
- package/stories/assets/flow.svg +0 -1
- package/stories/assets/plugin.svg +0 -1
- package/stories/assets/repo.svg +0 -1
- package/stories/assets/stackalt.svg +0 -1
- package/stories/getting-started/about-icij.mdx +0 -14
- package/stories/getting-started/custom-bootstrap.mdx +0 -23
- package/stories/getting-started/installation-guide.mdx +0 -62
- package/stories/getting-started/internationalization.mdx +0 -63
- package/stories/murmur/components/AccordionStep.stories.ts +0 -33
- package/stories/murmur/components/AccordionWrapper.stories.ts +0 -69
- package/stories/murmur/components/ActiveTextTruncate.stories.ts +0 -32
- package/stories/murmur/components/AdvancedLinkForm.stories.ts +0 -77
- package/stories/murmur/components/Brand.stories.ts +0 -30
- package/stories/murmur/components/BrandExpansion.stories.ts +0 -41
- package/stories/murmur/components/ConfirmButton.stories.ts +0 -40
- package/stories/murmur/components/ContentPlaceholder.stories.ts +0 -41
- package/stories/murmur/components/CustomPagination.stories.ts +0 -42
- package/stories/murmur/components/DigitsInput.stories.ts +0 -29
- package/stories/murmur/components/DonateForm.stories.ts +0 -29
- package/stories/murmur/components/EmbedForm.stories.ts +0 -35
- package/stories/murmur/components/EmbeddableFooter.stories.ts +0 -59
- package/stories/murmur/components/FollowUsPopover.stories.ts +0 -24
- package/stories/murmur/components/GenericFooter.stories.ts +0 -27
- package/stories/murmur/components/GenericHeader.stories.ts +0 -27
- package/stories/murmur/components/HapticCopy.stories.ts +0 -40
- package/stories/murmur/components/ImddbHeader.stories.ts +0 -27
- package/stories/murmur/components/OrdinalLegend.stories.ts +0 -49
- package/stories/murmur/components/RangePicker.stories.ts +0 -98
- package/stories/murmur/components/ResponsiveIframe.stories.ts +0 -24
- package/stories/murmur/components/ScaleLegend.stories.ts +0 -65
- package/stories/murmur/components/SecretInput.stories.ts +0 -60
- package/stories/murmur/components/SelectableDropdown.stories.ts +0 -143
- package/stories/murmur/components/SharingOptions.stories.ts +0 -32
- package/stories/murmur/components/SharingOptionsLink.stories.ts +0 -53
- package/stories/murmur/components/SignUpForm.stories.ts +0 -51
- package/stories/murmur/components/SlideUpDown.stories.ts +0 -32
- package/stories/murmur/components/TexturedDeck.stories.ts +0 -83
- package/stories/murmur/components/TinyPagination.stories.ts +0 -65
- package/stories/murmur/datavisualisations/BarChart.stories.ts +0 -54
- package/stories/murmur/datavisualisations/ColumnChart.stories.ts +0 -88
- package/stories/murmur/datavisualisations/LineChart.stories.ts +0 -139
- package/stories/murmur/datavisualisations/StackedBarChart.stories.ts +0 -199
- package/stories/murmur/datavisualisations/StackedColumnChart.stories.ts +0 -136
- package/stories/murmur/decorators.ts +0 -108
- package/stories/murmur/maps/ChoroplethMap.stories.ts +0 -440
- package/stories/murmur/maps/ChoroplethMapAnnotation.stories.ts +0 -26
- package/stories/murmur/maps/SymbolMap.stories.ts +0 -24
- package/stories/murmur/utils.ts +0 -7
- package/tests/unit/components/AccordionStep.spec.ts +0 -157
- package/tests/unit/components/AccordionWrapper.spec.ts +0 -57
- package/tests/unit/components/ActiveTextTruncate.spec.js +0 -30
- package/tests/unit/components/AdvancedLinkForm.spec.js +0 -124
- package/tests/unit/components/Brand.spec.js +0 -50
- package/tests/unit/components/ContentPlaceholder.spec.js +0 -29
- package/tests/unit/components/CustomPagination.spec.js +0 -72
- package/tests/unit/components/DigitsInput.spec.ts +0 -157
- package/tests/unit/components/DonateForm.spec.js +0 -149
- package/tests/unit/components/EmbedForm.spec.js +0 -108
- package/tests/unit/components/EmbeddableFooter.spec.js +0 -11
- package/tests/unit/components/Fa.spec.js +0 -18
- package/tests/unit/components/FollowUsPopover.spec.js +0 -29
- package/tests/unit/components/GenericFooter.spec.js +0 -29
- package/tests/unit/components/GenericHeader.spec.js +0 -104
- package/tests/unit/components/HapticCopy.spec.js +0 -123
- package/tests/unit/components/ImddbHeader.spec.js +0 -96
- package/tests/unit/components/OrdinalLegend.spec.js +0 -120
- package/tests/unit/components/RangePicker.spec.ts +0 -87
- package/tests/unit/components/ResponsiveIframe.spec.js +0 -20
- package/tests/unit/components/ScaleLegend.spec.js +0 -139
- package/tests/unit/components/SecretInput.spec.js +0 -81
- package/tests/unit/components/SelectableDropdown.spec.js +0 -160
- package/tests/unit/components/SharingOptions.spec.js +0 -125
- package/tests/unit/components/SharingOptionsLink.spec.js +0 -184
- package/tests/unit/components/SignUpForm.spec.js +0 -145
- package/tests/unit/components/SlideUpDown.spec.js +0 -59
- package/tests/unit/components/TinyPagination.spec.js +0 -46
- package/tests/unit/config.spec.js +0 -136
- package/tests/unit/datavisualisations/BarChart.spec.js +0 -63
- package/tests/unit/datavisualisations/ColumnChart.spec.js +0 -344
- package/tests/unit/datavisualisations/LineChart.spec.js +0 -155
- package/tests/unit/datavisualisations/StackedBarChart.spec.js +0 -294
- package/tests/unit/datavisualisations/StackedColumnChart.spec.js +0 -443
- package/tests/unit/i18n.spec.ts +0 -19
- package/tests/unit/main.spec.js +0 -82
- package/tests/unit/maps/ChoroplethMap.spec.js +0 -214
- package/tests/unit/maps/ChoroplethMapAnnotation.spec.ts +0 -186
- package/tests/unit/maps/SymbolMap.spec.js +0 -92
- package/tests/unit/require.spec.js +0 -22
- package/tests/unit/setup.js +0 -13
- package/tests/unit/utils/assets.spec.js +0 -61
- package/tests/unit/utils/clipboard.spec.js +0 -18
- package/tests/unit/utils/iframe-resizer.spec.js +0 -71
- package/tsconfig.json +0 -35
- package/vite.config.ts +0 -79
- package/vitest.config.ts +0 -19
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
Some components like `textured-deck` need to load images. Those images are not bundled with Murmur anymore and are available throught a public URL. Therefore, you might need to customize how those image are loaded.
|
|
2
|
-
|
|
3
|
-
## TexturedDeck
|
|
4
|
-
|
|
5
|
-
The `TexturedDeck` components allow you to quickly create a textured block following ICIJ branding with zero configuration:
|
|
6
|
-
|
|
7
|
-
<div class="row">
|
|
8
|
-
<div class=" col-6">
|
|
9
|
-
<textured-deck class="p-4 mb-3" value="carbon">
|
|
10
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
11
|
-
</textured-deck>
|
|
12
|
-
</div>
|
|
13
|
-
<div class=" col-6">
|
|
14
|
-
<textured-deck class="p-4 mb-3" black value="carbon">
|
|
15
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
16
|
-
</textured-deck>
|
|
17
|
-
</div>
|
|
18
|
-
<div class=" col-6">
|
|
19
|
-
<textured-deck class="p-4 mb-3" value="sand">
|
|
20
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
21
|
-
</textured-deck>
|
|
22
|
-
</div>
|
|
23
|
-
<div class=" col-6">
|
|
24
|
-
<textured-deck class="p-4 mb-3" black value="sand">
|
|
25
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
26
|
-
</textured-deck>
|
|
27
|
-
</div>
|
|
28
|
-
<div class=" col-6">
|
|
29
|
-
<textured-deck class="p-4 mb-3" value="rock">
|
|
30
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
31
|
-
</textured-deck>
|
|
32
|
-
</div>
|
|
33
|
-
<div class=" col-6">
|
|
34
|
-
<textured-deck class="p-4 mb-3" black value="rock">
|
|
35
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
|
36
|
-
</textured-deck>
|
|
37
|
-
</div>
|
|
38
|
-
</div>
|
|
39
|
-
|
|
40
|
-
Those background are currently loaded from a remote location:
|
|
41
|
-
|
|
42
|
-
<p><b-input type="text" :value="texturedDeckBackgroundBaseUrl" readonly /></p>
|
|
43
|
-
|
|
44
|
-
So everytime you pick a textured deck, the background is created using this host, such as:
|
|
45
|
-
|
|
46
|
-
<p><b-input type="text" :value="texturedDeckBackgroundRockUrl" readonly /></p>
|
|
47
|
-
|
|
48
|
-
This base location is configured using Murmur config object, in the property
|
|
49
|
-
called `textured-deck.background-base-url`. If for any reason you need to avoid
|
|
50
|
-
loading the image from a remote location, you can always change the base URL (please
|
|
51
|
-
ensure your base URL has not tailing slash):
|
|
52
|
-
|
|
53
|
-
```js
|
|
54
|
-
Murmur.config.set('textured-deck.background-base-url', 'https://projects.icij.org')
|
|
55
|
-
// Or from inside a Vue component:
|
|
56
|
-
this.$config.set('textured-deck.background-base-url', 'https://projects.icij.org')
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
## ChoroplethMap and SymbolMap
|
|
60
|
-
|
|
61
|
-
Both `ChoroplethMap` and `SymbolMap` use a remote topojson file to draw the background
|
|
62
|
-
of the map. This topojson contains the features for every countries except Antarctica.
|
|
63
|
-
|
|
64
|
-
<symbol-map class="bg-light p-5 mb-3" hide-legend feature-color="#333" />
|
|
65
|
-
|
|
66
|
-
This topojson is currently loaded from a remote location:
|
|
67
|
-
|
|
68
|
-
<p><b-input type="text" :value="mapTopojsonWorldCountriesSansAntarctica" readonly /></p>
|
|
69
|
-
|
|
70
|
-
The default topojson is configured globally using Murmur config object, in the property
|
|
71
|
-
called `map.topojson.world-countries-sans-antarctica`. If for any reason you need to
|
|
72
|
-
use a different topojson by default **on every maps** you can change the configuration:
|
|
73
|
-
|
|
74
|
-
```js
|
|
75
|
-
Murmur.config.set('map.topojson.world-countries-sans-antarctica', 'https://raw.githubusercontent.com/deldersveld/topojson/master/world-continents.json')
|
|
76
|
-
// Or from inside a Vue component:
|
|
77
|
-
this.$config.set('map.topojson.world-countries-sans-antarctica', 'https://raw.githubusercontent.com/deldersveld/topojson/master/world-continents.json')
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Alternativly, if you want to change the topojson on a specify maps, both `ChoroplethMap` and
|
|
81
|
-
`SymbolMap` can receive a `topojsonUrl` property.
|
|
82
|
-
|
|
83
|
-
::: sample-card
|
|
84
|
-
<div class="row">
|
|
85
|
-
<div class="col-6 text-center mb-3">
|
|
86
|
-
<symbol-map class="p-3"
|
|
87
|
-
feature-color="#333"
|
|
88
|
-
hide-legend
|
|
89
|
-
topojson-url="https://raw.githubusercontent.com/deldersveld/topojson/master/countries/italy/italy-provinces.json"
|
|
90
|
-
topojson-objects="ITA_adm2"
|
|
91
|
-
topojson-objects-path="properties.ID_2" />
|
|
92
|
-
Italy
|
|
93
|
-
</div>
|
|
94
|
-
<div class="col-6 text-center mb-3">
|
|
95
|
-
<symbol-map class="p-3"
|
|
96
|
-
feature-color="#333"
|
|
97
|
-
hide-legend
|
|
98
|
-
topojson-url="https://raw.githubusercontent.com/deldersveld/topojson/master/countries/japan/jp-prefectures.json"
|
|
99
|
-
topojson-objects="JPN_adm1"
|
|
100
|
-
topojson-objects-path="properties.ID_1" />
|
|
101
|
-
Japan
|
|
102
|
-
</div>
|
|
103
|
-
<div class="col-6 text-center mb-3">
|
|
104
|
-
<symbol-map class="p-3"
|
|
105
|
-
feature-color="#333"
|
|
106
|
-
hide-legend
|
|
107
|
-
topojson-url="https://raw.githubusercontent.com/deldersveld/topojson/master/countries/united-kingdom/uk-counties.json"
|
|
108
|
-
topojson-objects="GBR_adm2"
|
|
109
|
-
topojson-objects-path="properties.ID_2" />
|
|
110
|
-
United Kingdom
|
|
111
|
-
</div>
|
|
112
|
-
<div class="col-6 text-center mb-3">
|
|
113
|
-
<symbol-map class="p-3"
|
|
114
|
-
feature-color="#333"
|
|
115
|
-
hide-legend
|
|
116
|
-
topojson-url="https://raw.githubusercontent.com/deldersveld/topojson/master/countries/venezuela/venezuela-estados.json"
|
|
117
|
-
topojson-objects="VEN_adm1"
|
|
118
|
-
topojson-objects-path="properties.ID_1" />
|
|
119
|
-
Venezuela
|
|
120
|
-
</div>
|
|
121
|
-
</div>
|
|
122
|
-
:::
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
<script>
|
|
126
|
-
import config from '@/config.default'
|
|
127
|
-
|
|
128
|
-
export default {
|
|
129
|
-
data () {
|
|
130
|
-
return {
|
|
131
|
-
texturedDeckBackgroundBaseUrl: config['textured-deck.background-base-url'],
|
|
132
|
-
texturedDeckBackgroundRockUrl: `${config['textured-deck.background-base-url']}/assets/img/texture-rock.jpg`,
|
|
133
|
-
mapTopojsonWorldCountriesSansAntarctica: config['map.topojson.world-countries-sans-antarctica']
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
</script>
|
|
138
|
-
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Configure Murmur
|
|
3
|
-
order: 0
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Murmur comes with a built-in configuration system. To access the configuration
|
|
7
|
-
object, just use the `config` static property from the Murmur class:
|
|
8
|
-
|
|
9
|
-
```js
|
|
10
|
-
import Murmur from '@icij/murmur'
|
|
11
|
-
|
|
12
|
-
Murmur.config.set('project', 'Demo Project')
|
|
13
|
-
Murmur.config.get('project')
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
New key/value pair can be define using namespaces and dot notation:
|
|
17
|
-
|
|
18
|
-
```js
|
|
19
|
-
Murmur.config.set('foo.bar', 'value')
|
|
20
|
-
// same as...
|
|
21
|
-
Murmur.config.scope('foo').set('bar', 'value')
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Here is the list of default values:
|
|
25
|
-
|
|
26
|
-
<div class="table-responsive border border-top-0">
|
|
27
|
-
<table class="table table-sm table-striped text-nowrap m-0">
|
|
28
|
-
<tr v-for="(value, key) in config">
|
|
29
|
-
<td>
|
|
30
|
-
<haptic-copy class="btn-sm btn-info" hide-label :text="key" />
|
|
31
|
-
</td>
|
|
32
|
-
<td class="align-middle">
|
|
33
|
-
<code>{{ key }}</code>
|
|
34
|
-
</td>
|
|
35
|
-
<td class="small text-monospace text-muted align-middle">
|
|
36
|
-
{{ value }}
|
|
37
|
-
</td>
|
|
38
|
-
</tr>
|
|
39
|
-
</table>
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<script>
|
|
43
|
-
import config from '@/config.default'
|
|
44
|
-
|
|
45
|
-
export default {
|
|
46
|
-
data () {
|
|
47
|
-
return {
|
|
48
|
-
config
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
</script>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
### Theme
|
|
2
|
-
|
|
3
|
-
The default theme is extending Boostrap with custom colors. The primary color
|
|
4
|
-
comes from ICIJ graphical charter. Every color utility classes provided by
|
|
5
|
-
Boostrap (`bg-primary`, `text-primary`, ...) work as expected.
|
|
6
|
-
|
|
7
|
-
<palette-presenter :colors="themeColors" />
|
|
8
|
-
|
|
9
|
-
### Grays
|
|
10
|
-
|
|
11
|
-
The colour tones to be used are outlined below and are on a gray scale that
|
|
12
|
-
incorporates the new brand colour ways. Amount of gray was reduced
|
|
13
|
-
tones used in illustration to create higher contrast in images. Only the grays
|
|
14
|
-
outlined below should be used in any illustrations.
|
|
15
|
-
|
|
16
|
-
<palette-presenter :colors="grays" />
|
|
17
|
-
|
|
18
|
-
<script>
|
|
19
|
-
import sassVars from '@/styles/variables.scss?sass-vars'
|
|
20
|
-
|
|
21
|
-
export default {
|
|
22
|
-
computed: {
|
|
23
|
-
themeColors () {
|
|
24
|
-
return sassVars["$theme-colors"]
|
|
25
|
-
},
|
|
26
|
-
grays () {
|
|
27
|
-
return sassVars["$brand-grays"]
|
|
28
|
-
},
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
</script>
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
### FontAwesome
|
|
2
|
-
|
|
3
|
-
This library heavily relies on [Font Awesome](https://fontawesome.com/) to display icons.
|
|
4
|
-
As they state on their website "Font Awesome gives you scalable vector icons that
|
|
5
|
-
can instantly be customized — size, color, drop shadow, and anything that can be
|
|
6
|
-
done with the power of CSS".
|
|
7
|
-
|
|
8
|
-
All available icons [can be found here](https://fontawesome.com/icons?d=gallery&m=free).
|
|
9
|
-
|
|
10
|
-
### Adding icons to the library
|
|
11
|
-
|
|
12
|
-
Since all icons are not imported automaticly, you must indicate which icons are
|
|
13
|
-
available in your application. This documentation, like any application using this
|
|
14
|
-
package, has its own subset of icons:
|
|
15
|
-
|
|
16
|
-
<ul class="list-inline">
|
|
17
|
-
<li v-for="(icon, i) in fas" :key="i" class="p-1 text-primary list-inline-item mb-2">
|
|
18
|
-
<fa :icon="icon" fixed-width size="2x" />
|
|
19
|
-
</li>
|
|
20
|
-
</ul>
|
|
21
|
-
|
|
22
|
-
This way, your application stays small and doesn't load unecessary icon — especialy
|
|
23
|
-
if it only uses components that require only a few icons. Because icons are lazy
|
|
24
|
-
loaded, you might see this list grow while visiting other components. These icons
|
|
25
|
-
are added using the following method:
|
|
26
|
-
|
|
27
|
-
```js
|
|
28
|
-
// Target the icon you need to add to your library
|
|
29
|
-
import { faBars } from '@fortawesome/free-solid-svg-icons/faBars'
|
|
30
|
-
// Import the library instance provided by FontAwesome
|
|
31
|
-
import { library } from '@icij/murmur/lib/components/Fa'
|
|
32
|
-
|
|
33
|
-
// And add the bars to the library
|
|
34
|
-
library.add(faBars)
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
You can now use the `bars` icon in you templates using the Fa component:
|
|
38
|
-
|
|
39
|
-
```html
|
|
40
|
-
<fa icon="bars" />
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
<script>
|
|
44
|
-
import { get, uniqBy } from 'lodash'
|
|
45
|
-
import { library } from '@/components/Fa'
|
|
46
|
-
|
|
47
|
-
export default {
|
|
48
|
-
computed: {
|
|
49
|
-
fas () {
|
|
50
|
-
return uniqBy(Object.keys(library.definitions.fas || {}), key => {
|
|
51
|
-
return get(library.definitions.fas, [key, 2])
|
|
52
|
-
})
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
</script>
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
## Alerts
|
|
3
|
-
|
|
4
|
-
Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages.
|
|
5
|
-
|
|
6
|
-
:::sample-card
|
|
7
|
-
<template>
|
|
8
|
-
<div class="p-4 bg-white">
|
|
9
|
-
<b-alert variant="primary" show>
|
|
10
|
-
A simple primary alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
|
|
11
|
-
</b-alert>
|
|
12
|
-
<b-alert variant="secondary" show>
|
|
13
|
-
A simple secondary alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
|
|
14
|
-
</b-alert>
|
|
15
|
-
<b-alert variant="success" show>
|
|
16
|
-
A simple success alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
|
|
17
|
-
</b-alert>
|
|
18
|
-
<b-alert variant="danger" show>
|
|
19
|
-
A simple danger alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
|
|
20
|
-
</b-alert>
|
|
21
|
-
<b-alert variant="warning" show>
|
|
22
|
-
A simple warning alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
|
|
23
|
-
</b-alert>
|
|
24
|
-
<b-alert variant="info" show>
|
|
25
|
-
A simple info alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
|
|
26
|
-
</b-alert>
|
|
27
|
-
<hr />
|
|
28
|
-
<b-alert variant="light" show>
|
|
29
|
-
A simple light alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
|
|
30
|
-
</b-alert>
|
|
31
|
-
<b-alert variant="dark" show>
|
|
32
|
-
A simple dark alert with <a href="#" class="alert-link">an example link</a>. Give it a click if you like.
|
|
33
|
-
</b-alert>
|
|
34
|
-
</div>
|
|
35
|
-
</template>
|
|
36
|
-
:::
|
|
37
|
-
|
|
38
|
-
## Badges
|
|
39
|
-
|
|
40
|
-
Provide badges, our small count and labeling component.
|
|
41
|
-
|
|
42
|
-
:::sample-card
|
|
43
|
-
<template>
|
|
44
|
-
<div class="p-4 bg-white">
|
|
45
|
-
<b-badge variant="primary" class="mr-1">Primary</b-badge>
|
|
46
|
-
<b-badge variant="secondary" class="mr-1">Secondary</b-badge>
|
|
47
|
-
<b-badge variant="success" class="mr-1">Success</b-badge>
|
|
48
|
-
<b-badge variant="danger" class="mr-1">Danger</b-badge>
|
|
49
|
-
<b-badge variant="warning" class="mr-1">Warning</b-badge>
|
|
50
|
-
<b-badge variant="info" class="mr-1">Info</b-badge>
|
|
51
|
-
<hr />
|
|
52
|
-
<b-badge variant="light" class="mr-1">Light</b-badge>
|
|
53
|
-
<b-badge variant="dark" class="mr-1"">Dark</b-badge>
|
|
54
|
-
</div>
|
|
55
|
-
</template>
|
|
56
|
-
:::
|
|
57
|
-
|
|
58
|
-
## Buttons
|
|
59
|
-
|
|
60
|
-
Provide custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more.
|
|
61
|
-
|
|
62
|
-
:::sample-card
|
|
63
|
-
<template>
|
|
64
|
-
<div class="p-4 bg-white">
|
|
65
|
-
<b-button variant="primary" class="mr-1">Primary</b-button>
|
|
66
|
-
<b-button variant="secondary" class="mr-1">Secondary</b-button>
|
|
67
|
-
<b-button variant="success" class="mr-1">Success</b-button>
|
|
68
|
-
<b-button variant="danger" class="mr-1">Danger</b-button>
|
|
69
|
-
<b-button variant="warning" class="mr-1">Warning</b-button>
|
|
70
|
-
<b-button variant="info" class="mr-1">Info</b-button>
|
|
71
|
-
<hr />
|
|
72
|
-
<b-button variant="light" class="mr-1">Light</b-button>
|
|
73
|
-
<b-button variant="dark" class="mr-1">Dark</b-button>
|
|
74
|
-
<b-button variant="link" class="mr-1">Link</b-button>
|
|
75
|
-
</div>
|
|
76
|
-
</template>
|
|
77
|
-
:::
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
## Headings
|
|
2
|
-
|
|
3
|
-
All HTML headings, `<h1>` through `<h6>`, are available with the <strong>{{ headingsFontFamily }}</strong> font.
|
|
4
|
-
|
|
5
|
-
Heading | Example
|
|
6
|
-
--- | ---
|
|
7
|
-
`<h1></h1>` | <h1>h1. Bootstrap heading</h1>
|
|
8
|
-
`<h2></h2>` | <h2>h2. Bootstrap heading</h2>
|
|
9
|
-
`<h3></h3>` | <h3>h3. Bootstrap heading</h3>
|
|
10
|
-
`<h4></h4>` | <h4>h4. Bootstrap heading</h4>
|
|
11
|
-
`<h5></h5>` | <h5>h5. Bootstrap heading</h5>
|
|
12
|
-
`<h6></h6>` | <h6>h6. Bootstrap heading</h6>
|
|
13
|
-
|
|
14
|
-
## Jumbotron
|
|
15
|
-
|
|
16
|
-
A lightweight, flexible component that can optionally extend the entire viewport to showcase key marketing messages on your site. Jumbotron main header uses the <strong>{{ jumbotronFontFamily }}</strong> font.
|
|
17
|
-
|
|
18
|
-
Bellow an example combined with a `textured-deck`:
|
|
19
|
-
|
|
20
|
-
:::sample-card
|
|
21
|
-
<div>
|
|
22
|
-
<textured-deck black value="brick">
|
|
23
|
-
<b-jumbotron header="ICIJ" lead="For more information visit ICIJ website" bg-variant="transparent" class="m-0">
|
|
24
|
-
<b-button variant="primary" href="https://icij.org">More Info</b-button>
|
|
25
|
-
</b-jumbotron>
|
|
26
|
-
</textured-deck>
|
|
27
|
-
</div>
|
|
28
|
-
:::
|
|
29
|
-
|
|
30
|
-
## Font utilities
|
|
31
|
-
|
|
32
|
-
Alternativly you can specify which font use with a class:
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Class | Example | Font
|
|
36
|
-
--- | --- | ---
|
|
37
|
-
`text-jumbotron` | <div class="text-jumbotron">div. Text with font jumbotron</div> | {{ jumbotronFontFamily }}
|
|
38
|
-
`text-serif` | <div class="text-serif">div. Text with font serif</div> | {{ serifFontFamily }}
|
|
39
|
-
`text-sans-serif` | <div class="text-sans-serif">div. Text with font sans-serif</div> | {{ sansSerifFontFamily }}
|
|
40
|
-
`text-monospace` | <div class="text-monospace">div. Text with font monospace</div> | {{ monospaceFontFamily }}
|
|
41
|
-
|
|
42
|
-
<script>
|
|
43
|
-
import { get, trim } from 'lodash'
|
|
44
|
-
import mainVariables from '@/styles/variables.scss?sass-vars'
|
|
45
|
-
|
|
46
|
-
export default {
|
|
47
|
-
computed: {
|
|
48
|
-
headingsFontFamily () {
|
|
49
|
-
return this.getFontValue("$headings-font-family")
|
|
50
|
-
},
|
|
51
|
-
jumbotronFontFamily () {
|
|
52
|
-
return this.getFontValue("$jumbotron-font-family")
|
|
53
|
-
},
|
|
54
|
-
serifFontFamily () {
|
|
55
|
-
return this.getFontValue("$font-family-serif")
|
|
56
|
-
},
|
|
57
|
-
sansSerifFontFamily () {
|
|
58
|
-
return this.getFontValue("$font-family-sans-serif")
|
|
59
|
-
},
|
|
60
|
-
monospaceFontFamily () {
|
|
61
|
-
return this.getFontValue("$font-family-monospace")
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
methods: {
|
|
65
|
-
getFontValue (name) {
|
|
66
|
-
const [ font ] = get(mainVariables, name, [null])
|
|
67
|
-
return trim(font, '\'"')
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
</script>
|
package/docs/routes.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import filter from 'lodash/filter'
|
|
2
|
-
import docsFrontMatter from 'virtual:docs'
|
|
3
|
-
|
|
4
|
-
const PAGE_COMPONENTS = import.meta.glob(`./pages/**/*/doc.md`)
|
|
5
|
-
|
|
6
|
-
export function loadComponent(section, name) {
|
|
7
|
-
return PAGE_COMPONENTS[`./pages/${section}/${name}/doc.md`]
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export function filterRoutes(predicate = {}) {
|
|
11
|
-
return filter(routes, predicate)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const routes = [
|
|
15
|
-
{
|
|
16
|
-
path: '/',
|
|
17
|
-
redirect: '/getting-started/installation-guide'
|
|
18
|
-
},
|
|
19
|
-
...docsFrontMatter.map(doc => {
|
|
20
|
-
const component = loadComponent(doc.meta.section, doc.name)
|
|
21
|
-
return { ...doc, component }
|
|
22
|
-
})
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
export default routes;
|
package/docs/store/index.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import Vue from 'vue'
|
|
2
|
-
import Vuex from 'vuex'
|
|
3
|
-
|
|
4
|
-
Vue.use(Vuex)
|
|
5
|
-
|
|
6
|
-
export default new Vuex.Store({
|
|
7
|
-
state: {
|
|
8
|
-
collapseMenu: true
|
|
9
|
-
},
|
|
10
|
-
mutations: {
|
|
11
|
-
toggleMenu (state) {
|
|
12
|
-
state.collapseMenu = !state.collapseMenu
|
|
13
|
-
},
|
|
14
|
-
collapseMenu (state) {
|
|
15
|
-
state.collapseMenu = true
|
|
16
|
-
},
|
|
17
|
-
showMenu (state) {
|
|
18
|
-
state.collapseMenu = false
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
})
|
package/docs/styles/app.scss
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
// Import your library's styles
|
|
2
|
-
@import './variables.scss';
|
|
3
|
-
@import '../../lib/styles/lib.scss';
|
|
4
|
-
@import 'node_modules/bootstrap/scss/bootstrap';
|
|
5
|
-
@import 'node_modules/bootstrap-vue/dist/bootstrap-vue';
|
|
6
|
-
@import 'node_modules/highlight.js/styles/base16/bright';
|
|
7
|
-
|
|
8
|
-
.app__main {
|
|
9
|
-
p a:not(.nav-link):not(.btn),
|
|
10
|
-
article a:not(.nav-link):not(.btn),
|
|
11
|
-
li:not(.ordinal-legend__item) a:not(.nav-link):not(.btn) {
|
|
12
|
-
border-bottom: 1px solid $primary;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
&__view {
|
|
16
|
-
table {
|
|
17
|
-
@extend .table;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.card-xs {
|
|
23
|
-
max-width: 330px;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@each $breakpoint, $width in $container-max-widths {
|
|
27
|
-
.card-#{$breakpoint} {
|
|
28
|
-
max-width: $width;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.header-anchor {
|
|
33
|
-
display: none
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
@import '@/styles/variables.scss';
|
|
2
|
-
|
|
3
|
-
$docs-menu-bg: #000;
|
|
4
|
-
$docs-menu-color: #fff;
|
|
5
|
-
$docs-menu-muted: mix($docs-menu-bg, $docs-menu-color, 50%);
|
|
6
|
-
|
|
7
|
-
$docs-header-bg: $jumbotron-bg;
|
|
8
|
-
$docs-header-border-color: darken($docs-header-bg, 10%);
|
|
9
|
-
|
|
10
|
-
$pre-color: $light;
|
|
11
|
-
$app-menu-max-width: 300px;
|
|
12
|
-
$app-main-max-width: 770px;
|
|
13
|
-
|
|
14
|
-
$modal-backdrop-bg: rgba(darken($dark, 10%), .5);
|
|
15
|
-
$code-color: $info;
|
|
16
|
-
|
|
17
|
-
$link-color: #000;
|
|
18
|
-
$link-decoration: none;
|
|
19
|
-
$link-hover-color: $primary;
|
|
20
|
-
$link-hover-decoration: none;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
const hljs = require('highlight.js')
|
|
2
|
-
const loaderUtils = require('loader-utils')
|
|
3
|
-
|
|
4
|
-
module.exports = function highlightLoader(source) {
|
|
5
|
-
this && this.cacheable && this.cacheable()
|
|
6
|
-
const query = loaderUtils.parseQuery(this.query || '?')
|
|
7
|
-
const language = query.lang
|
|
8
|
-
const code = hljs.getLanguage(language) ? hljs.highlight(source, { language }) : hljs.highlightAuto(source)
|
|
9
|
-
const json = JSON.stringify(code.value)
|
|
10
|
-
.replace(/\u2028/g, '\\u2028')
|
|
11
|
-
.replace(/\u2029/g, '\\u2029');
|
|
12
|
-
return `module.exports = ${json}`;
|
|
13
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @src https://github.com/vuejs/vuepress/tree/master/packages/%40vuepress/markdown-loader
|
|
5
|
-
* Module dependencies.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
const { EventEmitter } = require('events')
|
|
9
|
-
const { getOptions } = require('loader-utils')
|
|
10
|
-
const { fs, path, hash, parseFrontmatter, } = require('@vuepress/shared-utils')
|
|
11
|
-
const LRU = require('lru-cache')
|
|
12
|
-
const md = require('@vuepress/markdown')
|
|
13
|
-
|
|
14
|
-
const cache = LRU({ max: 1000 })
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Expose markdown loader.
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
module.exports = function (src) {
|
|
21
|
-
const isProd = process.env.NODE_ENV === 'production'
|
|
22
|
-
const options = getOptions(this)
|
|
23
|
-
const { sourceDir } = options
|
|
24
|
-
let { markdown } = options
|
|
25
|
-
// Duck-typing to ensure we received a correct markdown-it instance
|
|
26
|
-
if (!markdown || !markdown.parse) {
|
|
27
|
-
markdown = md()
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// we implement a manual cache here because this loader is chained before
|
|
31
|
-
// vue-loader, and will be applied on the same file multiple times when
|
|
32
|
-
// selecting the individual blocks.
|
|
33
|
-
const file = this.resourcePath
|
|
34
|
-
const key = hash(file + src)
|
|
35
|
-
const cached = cache.get(key)
|
|
36
|
-
if (cached && (isProd || /\?vue/.test(this.resourceQuery))) {
|
|
37
|
-
return cached
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const frontmatter = parseFrontmatter(src)
|
|
41
|
-
const content = frontmatter.content
|
|
42
|
-
|
|
43
|
-
// the render method has been augmented to allow plugins to
|
|
44
|
-
// register data during render
|
|
45
|
-
const { html, data: { hoistedTags, links }, dataBlockString } = markdown.render(content)
|
|
46
|
-
|
|
47
|
-
// check if relative links are valid
|
|
48
|
-
links && links.forEach(link => {
|
|
49
|
-
link = decodeURIComponent(link)
|
|
50
|
-
|
|
51
|
-
const shortname = link
|
|
52
|
-
.replace(/#.*$/, '')
|
|
53
|
-
.replace(/\.html$/, '.md')
|
|
54
|
-
|
|
55
|
-
const filename = shortname
|
|
56
|
-
.replace(/\/$/, '/README.md')
|
|
57
|
-
.replace(/^\//, sourceDir + '/')
|
|
58
|
-
|
|
59
|
-
const altname = shortname
|
|
60
|
-
.replace(/\/$/, '/index.md')
|
|
61
|
-
.replace(/^\//, sourceDir + '/')
|
|
62
|
-
|
|
63
|
-
const dir = path.dirname(this.resourcePath)
|
|
64
|
-
const file = path.resolve(dir, filename)
|
|
65
|
-
const altfile = altname !== filename ? path.resolve(dir, altname) : null
|
|
66
|
-
|
|
67
|
-
if (!fs.existsSync(file) && (!altfile || !fs.existsSync(altfile))) {
|
|
68
|
-
this.emitWarning(
|
|
69
|
-
new Error(
|
|
70
|
-
`\nFile for relative link "${link}" does not exist.\n` +
|
|
71
|
-
`(Resolved file: ${file})\n`
|
|
72
|
-
)
|
|
73
|
-
)
|
|
74
|
-
}
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
const res = (
|
|
78
|
-
`<template>\n` +
|
|
79
|
-
`<div>${html}</div>\n` +
|
|
80
|
-
`</template>\n` +
|
|
81
|
-
`<script>
|
|
82
|
-
export default { }
|
|
83
|
-
</script>` +
|
|
84
|
-
(hoistedTags || []).join('\n') +
|
|
85
|
-
`\n${dataBlockString}\n`
|
|
86
|
-
)
|
|
87
|
-
cache.set(key, res)
|
|
88
|
-
return res
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
module.exports.frontmatterEmitter = new EventEmitter()
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
const frontmatter = require('front-matter')
|
|
2
|
-
const startCase = require('lodash/startCase')
|
|
3
|
-
const { dirname, extname, relative } = require('path')
|
|
4
|
-
|
|
5
|
-
module.exports = function metadataLoader(source) {
|
|
6
|
-
this && this.cacheable && this.cacheable();
|
|
7
|
-
|
|
8
|
-
const metadata = {
|
|
9
|
-
title: startCase(dirname(this.resourcePath).split('/').pop()),
|
|
10
|
-
resourcePath: relative('./', this.resourcePath)
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (extname(this.resourcePath) === '.md') {
|
|
14
|
-
Object.assign(metadata, frontmatter(source).attributes)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return JSON.stringify(metadata)
|
|
18
|
-
}
|